<?php

/**
 * Permite anular multas del sistema
 * @package simertweb 
 * @subpackage controllers 
 * @category Administración
 * @author Grecia Espinoza <mrcl2587@gmail.com>
 * @author Juan Maldonado  <jgmaldonadoj@gmail.com>
 * @version 1.0  
 */
class Anular_multas extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->model('mpersona');
        $this->load->model('mempleado');
        $this->load->model('mrol');
        $this->load->model('manular_multas');
        $this->load->model('mhistorico');
        $this->load->model('acceso');
    }

    /**
     * Muestra todas las multas no pagadas
     */
    function index() {
        if ($this->acceso->sesion() == 1) {
            $data['title'] = 'Paginacion_ci';
            $pages = 10; //Número de registros mostrados por páginas
            $this->load->library('pagination'); //Cargamos la librería de paginación
            $config['base_url'] = base_url() . 'anular_multas/'; // parametro base de la aplicación, si tenemos un .htaccess nos evitamos el index.php
            $config['total_rows'] = $this->manular_multas->listar_todas_no_pagadas(); //calcula el número de filas  
            $config['per_page'] = $pages; //Número de registros mostrados por páginas
            $config['num_links'] = 20; //Número de links mostrados en la paginación
            $config['first_link'] = 'Primera'; //primer link
            $config['last_link'] = 'Última'; //último link
            $config["uri_segment"] = 3; //el segmento de la paginación
            $config['next_link'] = 'Siguiente'; //siguiente link
            $config['prev_link'] = 'Anterior'; //anterior link
            $config['full_tag_open'] = '<div id="paginacion">'; //el div que debemos maquetar
            $config['full_tag_close'] = '</div>'; //el cierre del div de la paginación
            $this->pagination->initialize($config); //inicializamos la paginación        
            $data["listamultas"] = $this->manular_multas->total_paginados($config['per_page'], $this->uri->segment(3));
//            $data['paginacion'] = $this->pagination->create_links();
            
            //cargamos la vista y el array data
//            $this->load->view('anular_multas', $data);


            $data['listamultas'] = $this->manular_multas->listar_todas_no_pagadas();
            $this->load->view('includes/menu_izquierdo');
            $this->load->view('includes/cabecera');
            $this->load->view('anular_multas', $data);
            $this->load->view('includes/footer');
        } else {
            $this->load->view('autenticacion');
        }
    }

    /**
     * Muestra una multa buscada
     */
    function buscar_multas_nopagadas() {
        $this->form_validation->set_rules('buscarmultas', 'Código Multa', 'required');
        if ($this->form_validation->run() == TRUE) {
            $data['listamultas'] = $this->manular_multas->listar_multas_tipomultas_buscadas($_POST['buscarmultas']);
            $this->load->view('includes/menu_izquierdo');
            $this->load->view('includes/cabecera');
            $this->load->view('anular_multas', $data);
            $this->load->view('includes/footer');
        } else {
            $this->index();
        }
    }

    /**
     * Permite anular una multa 
     */
    function anular() {
        $this->form_validation->set_rules('listamultas', 'Multa', 'callback_seleccionar_check');
        $this->form_validation->set_rules('justificacion', 'Justificacion', 'required|callback_alpha_space|min_length[10]|max_length[300]|trim');
        if ($this->form_validation->run() == TRUE) {
            $data['message'] = '/simertweb/anular_multas';
            $this->manular_multas->anular_multas($_POST['listamultas'], $_POST['justificacion']);
            $this->load->view('includes/menu_izquierdo');
            $this->load->view('includes/cabecera');
            $this->load->view('includes/mensaje_exito', $data);
            $this->load->view('includes/footer');
        } else {
            $this->index();
        }
    }

    /**
     * Valida la selección de una multa
     * @return boolean
     */
    function seleccionar_check() {
        if (isset($_POST["listamultas"]) == TRUE) {
            return TRUE;
        } else {
            $this->form_validation->set_message('seleccionar_check', '<p style="color: red">Primero debe seleccionar una multa</p>');
            return FALSE;
        }
    }

    /**
     * Válida que la cadena contenga caracteres alfabéticos, espacios y tildes
     * @param type $str_in es el parámetro que se ingresa en el formulario
     * @return boolean
     */
    function alpha_space($str_in = '') {
        if (!preg_match("/^([-a-záéíóúÁÉÍÓÚñÑ ])+$/i", $str_in)) {
            $this->form_validation->set_message('alpha_space', '<p style="color: red">El campo %s acepta solo carateres alfabéticos.</p>');
            return FALSE;
        } else {
            return TRUE;
        }
    }

}

?>
